package com.wisnews.controller.sec;

import com.wisnews.pojo.Result;
import com.wisnews.service.Impl.QQEmailService;
import com.wisnews.util.Constants;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

import javax.servlet.http.HttpServletRequest;

/**
 * @Description：全局异常处理类。
 * @Author: yuyd
 * @Email: yyd8358@foxmail.com
 * @Date: 2021/3/23 17:07
 * @Version 1.0
 */
@RestControllerAdvice
public class GlobalExceptionHandlingController {

    @Autowired
    private QQEmailService qqEmailService;

    /**
     * @description: 全局异常处理方法，当系统出现异常时。向超级管理员发送邮件提醒报警。 捕获所有异常
     * @param: request e
     * @return: result
     * @author yuyd
     * @date: 2021/5/2 22:00
     */
    @ExceptionHandler(value = Exception.class)
    public Result allExceptionHandling(HttpServletRequest request,Exception e) {

        qqEmailService.sendSimpleMail("yyd8358@foxmail.com","智慧新闻异常提醒",
                "您好！智慧新闻系统运行发生异常，异常信息如下，请及时查看！["+e.getMessage()+"]");
        //开发时使用，上线时取消。避免没必要的io消耗
        e.printStackTrace();
        return new Result(Constants.SYS_CODE.SUCCESS, Constants.SYS_CODE.SUCCESS_MESSAGE,e.getMessage());

    }

}
